---
hide_table_of_contents: true
---

# Extending LangChain.js

Extending LangChain's base abstractions, whether you're planning to contribute back to the open-source repo or build a bespoke internal integration, is encouraged.

Check out these guides for building your own custom classes for the following modules:

- [Chat models](/docs/modules/model_io/chat/custom_chat) for interfacing with chat-tuned language models.
- [LLMs](/docs/modules/model_io/llms/custom_llm) for interfacing with text language models.
- [Output parsers](/docs/modules/model_io/output_parsers/custom) for handling language model outputs.
- [Retrievers](/docs/modules/data_connection/retrievers/custom) for fetching context from external data sources.
- [Vectorstores](/docs/modules/data_connection/vectorstores/custom) for interacting with vector databases.
- [Agents](/docs/modules/agents/how_to/custom_agent) that allow the language model to make decisions autonomously.
- [Chat histories](/docs/modules/memory/chat_messages/custom) which enable memory in the form of persistent storage of chat messages and sessions.
